code refactoring C